﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using SW_SoftBully.Models;
using System.Json;
using log4net;
using SW_SoftBully.Models.ModuloAdministracion.Edificio;
using SW_SoftBully.Models.ModuloAdministracion.Banco;
using SW_SoftBully.Models.ModuloAdministracion.DepartamentoPeru;
using SW_SoftBully.Models.ModuloAdministracion.ProvinciaPeru;
using SW_SoftBully.Models.ModuloAdministracion.DistritoPeru;
using SW_SoftBully.Controllers.ModuloAdministracion;

namespace SW_SoftBully.Controllers.ModuloAdministracion.Edificio
{
    public class EdificioController : Controller
    {
        //
        // GET: /Edificio/

        private SoftBullyDB db = new SoftBullyDB();
        EdificioFacade edificioFacade = new EdificioFacade();
        BancoFacade bancoFacade = new BancoFacade();
        DepartamentoPeruFacade departamentoPeruFacade = new DepartamentoPeruFacade();
        ProvinciaPeruFacade provinciaPeruFacade = new ProvinciaPeruFacade();
        DistritoPeruFacade distritoPeruFacade = new DistritoPeruFacade();

      public ActionResult Index()
        {
            return View();
        }

        public ActionResult Edificio() {
            return View();
        }

        public ActionResult RegistrarEdificio() {
            return View();
        }

        public ActionResult BuscarEdificio() {
            return View();
        }

        [HttpPost]
        public JsonResult registrarEdificio(EdificioBean edificio)
        {
            if (edificioFacade.Existeedificio(edificio))
            {
                return Json(new { me = "El edificio ya existe" });
            }

            string conexion = edificioFacade.Registraredificio(edificio);

            if (conexion == "Bien")
            {
                return Json(new { me = "Se ingreso correctamente " + edificio.Nombre });
                //Console.WriteLine("Hola");
            }
            else
            {
                return Json(new { me = conexion });
                //Console.WriteLine("Hola");
            }
        }

        [HttpPost]
        public JsonResult buscarEdificio(EdificioBean edificio)
        {
            System.Diagnostics.Debug.WriteLine("--------------------------------------________HDP> " + edificio.Nombre);

            List<EdificioBean> listaEdificio = edificioFacade.Listaredificio(edificio);

            System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + edificio.conexion);

            return Json(new { listaEdificio });
        }

        [HttpPost]
        public JsonResult eliminarEdificio(EdificioBean edificio) {
            string conexion = edificioFacade.Eliminaredificio(edificio);

            if (conexion == "Bien")
            {
                System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + edificio.conexion);
                return Json(new { me = "Se eliminó correctamente " + edificio.Nombre });
            }
            else {
                System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + edificio.conexion);
                return Json(new { me = conexion });
            }
        }

        [HttpPost]
        public JsonResult modificarEdificio(EdificioBean edificio)
        {
            string conexion = edificioFacade.Modificaredificio(edificio);

            if (conexion == "Bien")
            {
                System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + edificio.conexion);
                return Json(new { me = "Se modificó correctamente el edificio " + edificio.Nombre});
            }
            else
            {
                System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + edificio.conexion);
                return Json(new { me = conexion });
            }
        }

        [HttpPost]
        public JsonResult cargarBancos(BancoBean banco) {
            System.Diagnostics.Debug.WriteLine("--------------------------------------________HDP> " + banco.NombreComercial);

            List<BancoBean> listaBanco = bancoFacade.ListarBanco(banco);

            System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + banco.conexion);

            return Json(new { listaBanco });           
        }

        [HttpPost]
        public JsonResult cargarDepartamentos(DepartamentoPeruBean departamento)
        {
            System.Diagnostics.Debug.WriteLine("--------------------------------------________HDP> " + departamento.Nombre);

            List<DepartamentoPeruBean> listaDepartamentoPeru = departamentoPeruFacade.ListarDepartamentoPeru(departamento);

            System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + departamento.conexion);

            return Json(new { listaDepartamentoPeru });
        }

        [HttpPost]
        public JsonResult cargarProvincias(DepartamentoPeruBean departamento)
        {
            System.Diagnostics.Debug.WriteLine("--------------------------------------________HDP> " + departamento.Nombre);

            List<ProvinciaPeruBean> listaProvinciaPeru = provinciaPeruFacade.ListarProvinciaPeru(departamento);

            System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + departamento.conexion);

            return Json(new { listaProvinciaPeru });
        }

        [HttpPost]
        public JsonResult cargarDistritos(ProvinciaPeruBean provincia)
        {
            System.Diagnostics.Debug.WriteLine("--------------------------------------________HDP> " + provincia.Nombre);

            List<DistritoPeruBean> listaDistritoPeru = distritoPeruFacade.ListarDistritoPeru(provincia);

            System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + provincia.conexion);

            return Json(new { listaDistritoPeru });
        }
    }
}
